跳到主要内容

Java 中的 LineNumberReader

LineNumberReader 是一个缓冲的字符输入流,用于跟踪行号。说人话就是一个用于逐行读取文件的工具类

它提供了方法 setLineNumber()getLineNumber(),分别用于设置和获取当前行号。

Java 使用例

file.txt

Hello Friends! 
This is an example of LineNumberReader
LineNumberReader is a subclass of BufferedReader
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;

public class LineNumberReaderExample {

public static void main(String[] args) {
File file = new File("file.txt");
FileReader fileReader = null;
LineNumberReader lineNumberReader = null;
try {
fileReader = new FileReader(file);
lineNumberReader = new LineNumberReader(fileReader);

// Get Line Number
int lineNum = lineNumberReader.getLineNumber();
System.out.println("Line number : " + lineNum);

// Set Line Number
lineNumberReader.setLineNumber(2);

// Get Line Number
lineNum = lineNumberReader.getLineNumber();
System.out.println("Line number : " + lineNum);

String line = null;
while ((line = lineNumberReader.readLine()) != null) {
System.out.println(line);
}

// Get Line Number
lineNum = lineNumberReader.getLineNumber();
System.out.println("Line number : " + lineNum);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileReader != null) {
fileReader.close();
}
if (lineNumberReader != null) {
lineNumberReader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

输出:

Line number : 0 
Line number : 2
Hello Friends!
This is an example of LineNumberReader
LineNumberReader is a subclass of BufferedReader
Line number : 5